package cn.com.git.workflow.service;

import cn.com.git.common.model.ResultMsg;
import cn.com.git.common.model.ResultPage;
import cn.com.git.workflow.service.dto.*;
import cn.com.git.workflow.service.query.*;

/**
* WorkFlow API接口
* @author zhangzhenfu
* @Description
* @date 2020/4/13
*/
public interface WorkFlowService {
    /*=================================*/
    /*============ WorkFlow =============*/
    /*=================================*/
    //发起工作流程
    ResultMsg<WorkFlowOperateResultDTO> startWorkFlow(WorkFlowStartDTO startDTO);
    //结束工作流程
    ResultMsg<WorkFlowStopDTO> stopWorkFlow(WorkFlowStopDTO stopDTO);
    //扭转工作流程 前往下一个节点
    ResultMsg<WorkFlowOperateResultDTO> nextWorkFlow(WorkFlowNextDTO workFlowNextDTO);
    //当前流程节点
    ResultMsg<WorkFlowCurrentDTO> currentWorkFlowNode(Integer flowId);

    /*=================================*/
    /*============ WorkFlow =============*/
    /*=================================*/
    ResultPage<WorkFlowListDTO> listWorkFlow(WorkFlowListQuery query);
    ResultMsg<WorkFlowListDTO> findWorkFlow(Integer id);
    ResultMsg<WorkFlowSaveDTO> addWorkFlow(WorkFlowSaveDTO saveDTO);
    ResultMsg<WorkFlowSaveDTO> editWorkFlow(WorkFlowSaveDTO saveDTO);
    ResultMsg deleteWorkFlow(Integer id);
    /*=================================*/
    /*============ WorkFlowOperate =============*/
    /*=================================*/
    ResultPage<WorkFlowOperateListDTO> listWorkFlowOperate(WorkFlowOperateListQuery query);


}
